iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 15
0
Software Development

PHP 大師之路 - 開源的技術淬練系列 第 15

Day 15 - PHP 套件設計實戰 (1) 決定主題

  • 分享至 

  • xImage
  •  

在這一系列的文章中,雖然筆者在第一天定下整個系列的大方向,來到了第十五天,仍然一直在想如何把前面所提到的東西實際地應用在後面的章節,給讀者們對如何設計自己的開放原始碼作品有個「面」的認識,引發了興趣,再一起來追求「點」的細節。

不知道實際上會閱讀這系列文章的人有多少,但接下來的 PHP 套件設計實戰,整個內容和之前發表過的文章有連慣性,筆者將直接取用範例,並認真的把它們改寫成一個真正可派上用場的套件唷!

快取,就決定是你了!

キャッシュ ー キミにきめた!

Day 7 介紹工廠模式時的的範例,是一支 Redis 快取的類別,和一支使用 MySQL 的類別。筆者決定延用之前的範例來當作這次 PHP 套件設計實戰的主題。

話不多說,在筆者打這篇文章的同時,建立一個新的 GitHub 儲存庫。

建立儲存庫

還在得前一篇文章,筆者提到的命名訣竅嗎?儲存庫及介紹文章要簡潔有力,且要命中關鍵字。好讓以後想找相關資訊的人可以找到。

建好了。接下來要在本地端開發環境將這個儲存庫複製一份下來,並建立 composer.json 這個檔案,然後進行第一次的提交 (commit)。

相容性指南

在 composer.json 中的 require 欄位,指定 PHP 的版本。必須仔細評估相容性。以筆者的範例來說,皆會宣告指定回傳值型別,這是 PHP 7.0 以上的新增功能。也會使用 null 屬性型別宣告,這是 PHP 7.1 以上的功能。

如果你的作品集考量到盡可能支援所有的使用者基本盤 (user base),可以指定為 PHP 5.3,畢竟還有很多老舊的虛擬主機商仍然用很舊的 PHP 版本在運作中。如果你打算這麼做,之後的新增語法及功能都避免使用。

在 Day 2 的PHP 版本差異一文,可以給出一個參考方向。

"require": {
    "php": ">=7.1.0",
    "psr/simple-cache": "^1.0"
},

因本次作品會依照 PSR-16 的界面實作,因此依賴的套件,加入了 psr/simple-cache

"require-dev": {
    "phpunit/phpunit": "^7"
},

PHP Unit 是單元測試用的套件,第 7 版支援 PHP 7.1 至 7.3。筆這將就 7.1、7.2、7.3 這三個 PHP 版本進行單元測試。

編輯好 composer.json 之後,執行 composer install 安裝 PHP Unit 和 PSR-16 界面。

註:記得把 vendor 目錄加入 .gitignore 檔案裝,以避免該目錄被加入版控中。

第一次提交

編輯好 composer.json 之後,進行第一次提交,接下來的文章將一步一步的實作這個快取套件。

我們明天見。

本文同步更新於 TerryL 部落格 Day 15 - PHP 套件設計實戰 (1) 決定主題,歡迎前往討論。


上一篇
Day 14 - 發佈 Composer 套件的事前準備
下一篇
Day 16 - PHP 套件設計實戰 (2) 介面及目錄結構
系列文
PHP 大師之路 - 開源的技術淬練30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言